Proxmox VE(PVE)开启IOMMU功能实现硬件直通 – MSTG 您所在的位置:网站首页 PVE 篇二 Proxmox VE(PVE)开启IOMMU功能实现硬件直通 – MSTG

Proxmox VE(PVE)开启IOMMU功能实现硬件直通 – MSTG

2024-06-17 15:56| 来源: 网络整理| 查看: 265

1.确认硬件支持及biso功能开启

需要确认自己CPU是否支持虚拟化。intel要b75以上芯片组才支持。也就是说intel4代酷睿处理器以上,都支持。amd不明。具体可以到英特尔官网查看自己的CPU是否支持 英特尔® 虚拟化技术 (VT-x)

VT-D是io虚拟化。不是VT-X,具体请参考下面文章

https://zhuanlan.zhihu.com/p/50640466

有很多新手,以为主板开启虚拟化功能,就能直通了,其实不是!要开启vt-d才能io虚拟化。AMD平台是iommu,某些OEM主板上叫SRIOV。请注意。

2.修改引导设置

该步骤有两个方法可选,二选一即可!

方法1:

修改grub引导设置

使用nano /etc/default/grub去修改grub引导文件的设置

其实就是加入了iommu开启这个选项

#intel的的CPU修改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 pcie_acs_override=downstream,multifunction video=vesafb:off video=efifb:off" #amd的CPU修改为 GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

更改完成后,刷新系统配置

update-grub 方法2:

(2023.7.5更新,最新方法,参考PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g和proxmox(pve)折腾:开启IOMMU)

现在我们需要修改/etc/kernel/cmdline这个内核启动参数配置文件,在文件末尾添加该参数

intel_iommu=on iommu=pt i915.enable_gvt=1 pcie_acs_override=downstream,multifunction video=vesafb:off video=efifb:off

intel_iommu=on 是设置iommu功能开启(amd的cpu该参数名改为amd_iommu)

iommu=pt 是开启pt模式,官方文档说明:这仅在必要时才启用 IOMMU 转换,适配器不需要使用 DMA 转换到内存,因此可以提高虚拟机管理程序 PCIe 设备(未传递到 VM)的性能。意思就是开了能提高虚拟机调取PCIe的性能,那就开吧。

i915.enable_gvt=1 官方文档说明:Intel的 GVT-g 驱动程序集成在内核中,启用时加载模块。意思就是,想开启GVT-g的就添加这条,显卡直通的就不要添加了。

pcie_acs_override=downstream,multifunction 打ACS补丁,以细化pcie的IOMMU分组,解决CPU IOMMU分组问题

video=vesafb:off video=efifb:off 关闭一些显示功能以防冲突

更改完成后,刷新系统配置

proxmox-boot-tool refresh 2.2添加PVE内核模块 vi /etc/modules

添加这些内核模块进去(直接粘贴进去就好)

vfio vfio_iommu_type1 vfio_pci vfio_virqfd kvmgt

原理说明:

1、PCIe直通启用vfio vfio_iommu_type1 vfio_pci vfio_virqfd2、vGPU和GVT-g需再添加kvmgt

2.3刷新内核启动参数 update-initramfs -u -k all 2.4重启后查看内核启动参数

重启后查看/proc/cmdline有没有将我们在/etc/kernel/cmdline的修改添加进去

cat /proc/cmdline 2.5验证是否开启 dmesg | grep -e DMAR -e IOMMU ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types 2.6查看iommu分组

可使用该脚本查看

#!/bin/bash shopt -s nullglob for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do echo "IOMMU Group ${g##*/}:" for d in $g/devices/*; do echo -e "\t$(lspci -nns ${d##*/})" done; done;

参考文献

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g proxmox(pve)折腾:开启IOMMU ProxmoxVE NAS/AIO实战- PCIe直通(Ryzen/A卡独显直通+SATA控制器直通) 解决proxmox Ryzen CPU IOMMU分组问题 IOMMU是如何划分PCI device group的? PVE开启硬件直通功能



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有